<

非推奨の API は v2.10 以降削除されました

まとめ

Flutter に準拠して、非推奨ポリシー、 以降にサポートが終了した非推奨の API 2.10 安定版リリースは削除されました。

影響を受けるすべての API はこれにコンパイルされています 移行を支援する主要な情報源。あクイックリファレンスシートも利用可能です。

変更点

このセクションでは、影響を受けるクラスごとに非推奨をリストします。


Flutter Fixによるサポート: はい

maxLengthEnforcedv1.25 で非推奨になりました。

使用maxLengthEnforcementその代わり。 どこmaxLengthEnforcedtrue だったので、次のように置き換えますMaxLengthEnforcement.enforce。 どこmaxLengthEnforcedは false でした。次のように置き換えますMaxLengthEnforcement.none。 この変更により、元のバイナリを超えてより多くの動作を指定できるようになります。 選択、追加MaxLengthEnforcement.truncateAfterCompositionEndsとして 追加オプション。

次のクラスはすべて、API に同じ変更があります。

  • TextField
  • TextFormField
  • CupertinoTextField

移行ガイド

詳細な移行ガイドが利用可能

移行前のコード:

const TextField textField = TextField(maxLengthEnforced: true);
const TextField textField = TextField(maxLengthEnforced: false);
final lengthEnforced = textField.maxLengthEnforced;

const TextFormField textFormField = TextFormField(maxLengthEnforced: true);
const TextFormField textFormField = TextFormField(maxLengthEnforced: false);
final lengthEnforced = textFormField.maxLengthEnforced;

const CupertinoTextField cupertinoTextField = CupertinoTextField(maxLengthEnforced: true);
const CupertinoTextField cupertinoTextField = CupertinoTextField(maxLengthEnforced: false);
final lengthEnforced = cupertinoTextField.maxLengthEnforced;

移行後のコード:

const TextField textField = TextField(maxLengthEnforcement: MaxLengthEnforcement.enforce);
const TextField textField = TextField(maxLengthEnforcement: MaxLengthEnforcement.none);
final lengthEnforced = textField.maxLengthEnforcement;

const TextFormField textFormField = TextFormField(maxLengthEnforcement: MaxLengthEnforcement.enforce);
const TextFormField textFormField = TextFormField(maxLengthEnforcement: MaxLengthEnforcement.none);
final lengthEnforced = textFormField.maxLengthEnforcement;

const CupertinoTextField cupertinoTextField = CupertinoTextField(maxLengthEnforcement: MaxLengthEnforcement.enforce);
const CupertinoTextField cupertinoTextField = CupertinoTextField(maxLengthEnforcement: MaxLengthEnforcement.none);
final lengthEnforced = cupertinoTextField.maxLengthEnforcement;

参考文献

API ドキュメント:

  • TextField
  • TextFormField
  • CupertinoTextField

関連する問題:

  • 問題 67898

関連する PR:

  • で廃止されました#68086
  • に削除されました#98539

VelocityTrackerコンストラクタ

Flutter Fixによるサポート: はい

のデフォルトのコンストラクターVelocityTrackerv1.22 で非推奨になりました。

VelocityTracker.withKind()代わりに使用する必要があります。これにより、PointerDeviceKindトラッカーに指定します。以前のデフォルトVelocityTracker.kindだったPointerDeviceKind.touch

移行ガイド

移行前のコード:

final VelocityTracker tracker = VelocityTracker();

移行後のコード:

final VelocityTracker tracker = VelocityTracker.withKind(PointerDeviceKind.touch);

参考文献

API ドキュメント:

  • VelocityTracker
  • PointerDeviceKind

関連する PR:

  • で廃止されました#66043
  • に削除されました#98541

DayPicker&MonthPicker

Flutter Fix によるサポート: いいえ

DayPickerMonthPickerウィジェットは v1.15 で初めて非推奨になりました。 その後、v1.26 で拡張されました。

それらは 1 つの包括的なウィジェットに置き換えられました。CalendarDatePicker

これらのウィジェットは、showDatePicker方法。この方法は 新しいものを提示するために移行されましたaacc9b6b-42b3-403e-afef-26da0cb8​​66d4このリリースの前など、 最終的な削除にはさらなる措置は必要ありません。

参考文献

設計書:

API ドキュメント:

  • CalendarDatePicker
  • showDatePicker

関連する問題:

  • 問題 50133

関連する PR:

  • で廃止されました#50546
  • に削除されました#98543

FlatButtonRaisedButton、&OutlineButton

Flutter Fix によるサポート: いいえ

FlatButtonRaisedButton、 とOutlineButtonウィジェットが最初でした v1.20 で非推奨になり、v1.26 で拡張されました。

新しいボタンに置​​き換えられます。TextButtonElevatedButton、 とOutlinedButton。これらの新しいウィジェットは、新しい関連テーマも使用します。 一般的なButtonTheme

古いウィジェット 古いテーマ 新しいウィジェット 新しいテーマ
FlatButton ButtonTheme TextButton TextButtonTheme
RaisedButton ButtonTheme ElevatedButton ElevatedButtonTheme
OutlineButton ButtonTheme OutlinedButton OutlinedButtonTheme

移行ガイド

詳細なスタイル設定のための詳細な移行ガイドが利用可能

移行前のコード:

FlatButton(
  onPressed: onPressed,
  child: Text('Button'),
  // ...
);

RaisedButton(
  onPressed: onPressed,
  child: Text('Button'),
  // ...
);

OutlineButton(
  onPressed: onPressed,
  child: Text('Button'),
  // ...
);

移行後のコード:

TextButton(
  onPressed: onPressed,
  child: Text('Button'),
  // ...
);

ElevatedButton(
  onPressed: onPressed,
  child: Text('Button'),
  // ...
);

OutlinedButton(
  onPressed: onPressed,
  child: Text('Button'),
  // ...
);

参考文献

設計書:

API ドキュメント:

  • ButtonStyle
  • ButtonStyleButton
  • ElevatedButton
  • ElevatedButtonTheme
  • ElevatedButtonThemeData
  • OutlinedButton
  • OutlinedButtonTheme
  • OutlinedButtonThemeData
  • TextButton
  • TextButtonTheme
  • TextButtonThemeData

関連する PR:

  • 新しいAPIが追加されました#59702
  • で廃止されました#73352
  • に削除されました#98546

Scaffold SnackBarメソッド

Flutter Fix によるサポート: いいえ

以下Scaffold SnackBarメソッドは v1.23 で非推奨になりました。

  • showSnackBar
  • removeCurrentSnackBar
  • hideCurrentSnackBar

の同じ名前のメソッドScaffoldMessenger代わりに使用する必要があります。あ デフォルトScaffoldMessengerはすでにすべての場所で作成されていますMaterialApp

移行ガイド

詳細な移行ガイドが利用可能

移行前のコード:

Scaffold.of(context).showSnackBar(mySnackBar);
Scaffold.of(context).removeCurrentSnackBar(mySnackBar);
Scaffold.of(context).hideCurrentSnackBar(mySnackBar);

移行後のコード:

ScaffoldMessenger.of(context).showSnackBar(mySnackBar);
ScaffoldMessenger.of(context).removeCurrentSnackBar(mySnackBar);
ScaffoldMessenger.of(context).hideCurrentSnackBar(mySnackBar);

参考文献

設計書:

ビデオコンテンツ:

  • スナックバーの配達
  • 今週のウィジェット

API ドキュメント:

  • ScaffoldMessenger
  • SnackBar

関連する問題:

  • 問題 57218
  • 問題 62921

関連する PR:

  • 新しいAPIが追加されました#64101
  • で廃止されました#67947
  • に削除されました#98549

RectangularSliderTrackShape.disabledThumbGapWidth

Flutter Fixによるサポート: はい

RectangularSliderTrackShape.disabledThumbGapWidth最初に非推奨になったのは v1.5 に続き、v1.26 で拡張されました。

これは、スライダーのサムのアニメーションとしてフレームワークでは使用されなくなりました。 無効にすると発生しなくなりました。

移行ガイド

移行前のコード:

RectangularSliderTrackShape(disabledThumbGapWidth: 2.0);

移行後のコード:

RectangularSliderTrackShape();

参考文献

API ドキュメント:

  • RectangularSliderTrackShape

関連する PR:

  • アニメーションが変更されました#30390
  • で廃止されました#65246
  • に削除されました#98613

テキストの選択ThemeDataTextSelectionThemeData

Flutter Fixによるサポート: はい

以下ThemeDataメンバーは v1.23 で最初に非推奨になり、拡張されました v1.26では。

  • useTextSelectionTheme
  • textSelectionColor
  • cursorColor
  • textSelectionHandleColor

これらは、より包括的なものに置き換えられるべきです。TextSelectionThemeData、 これは現在で指定されていますThemeData自体。

useTextSelectionThemeフラグは、への一時的な移行フラグとして機能しました 2 つの API を区別するため、これで削除できます。

移行ガイド

詳細な移行ガイドが利用可能

移行前のコード:

ThemeData(
  useTextSelectionTheme: false,
  textSelectionColor: Colors.blue,
  cursorColor: Colors.green,
  textSelectionHandleColor: Colors.red,
);

移行後のコード:

ThemeData(
  textSelectionTheme: TextSelectionThemeData(
    selectionColor: Colors.blue,
    cursorColor: Colors.green,
    selectionHandleColor: Colors.red,
  ),
);

参考文献

設計書:

API ドキュメント:

  • ThemeData
  • TextSelectionThemeData

関連する問題:

  • 問題 17635
  • 問題 56082
  • 問題 61227

関連する PR:

  • 新しいAPIが追加されました#62014
  • で廃止されました#66485
  • に削除されました#98578

RenderEditable.onSelectionChangedTextSelectionDelegate.textEditingValue

Flutter Fix によるサポート: いいえ

RenderEditable.onSelectionChangedTextSelectionDelegate.textEditingValuev1.26 で非推奨になりました。

これらのメソッドの一方または両方を呼び出す代わりに、TextSelectionDelegate.userUpdateTextEditingValue。これにより、次のようなバグが修正されました。TextInputFormatter間違った選択値を受け取ることになります。

移行ガイド

移行前のコード:

renderEditable.onSelectionChanged(selection, renderObject, cause);
textSelectionDelegate.textEditingValue = value;

移行後のコード:

textSelectionDelegate.userUpdateTextEditingValue(value, cause);

参考文献

API ドキュメント:

  • RenderEditable
  • TextSelectionDelegate

関連する問題:

  • 解決済み#75505

関連する PR:

  • で廃止されました#75541
  • に削除されました#98582

Stack.overflow

Flutter Fixによるサポート: はい

Stack.overflow、同様にOverflowenum は v1.22 で非推奨になりました。

交換品は、Stack.clipBehavior、クリップの統合の一部として行われた変更 フレームワーク全体の動作とセマンティクス。どこOverflow.visible使われた、 使用Clip.none。どこOverflow.clip使用されました、使用してくださいClip.hardEdge

移行ガイド

詳細な移行ガイドが利用可能

移行前のコード:

const Stack stack = Stack(overflow: Overflow.visible);
const Stack stack = Stack(overflow: Overflow.clip);

移行後のコード:

const Stack stack = Stack(clipBehavior: Clip.none);
const Stack stack = Stack(clipBehavior: Clip.hardEdge);

参考文献

API ドキュメント:

  • Stack
  • Clip

関連する問題:

  • 解決済み#66030

関連する PR:

  • で廃止されました#66305
  • に削除されました#98583

UpdateLiveRegionEvent

Flutter Fix によるサポート: いいえ

SemanticsEvent UpdateLiveRegionEvent、v1.12で初めて非推奨になりました。 その後、v1.26 で拡張されました。

これはフレームワークによって実装されていないため、参照はすべて次のようにする必要があります。 削除されました。

参考文献

API ドキュメント:

  • SemanticsEvent

関連する PR:

  • で廃止されました#45940
  • に削除されました#98615

RenderObjectElementメソッド

Flutter Fixによるサポート: はい

以下RenderObjectElementメソッドは v1.21 で非推奨になりました。

  • insertChildRenderObject
  • moveChildRenderObject
  • removeChildRenderObject

これらのメソッドは、それぞれ次のように置き換えられます。

  • insertRenderObjectChild
  • moveRenderObjectChild
  • removeRenderObjectChild

これらの変更は、 関数のシグネチャ。

移行ガイド

移行前のコード:

element.insertChildRenderObject(child, slot);
element.moveChildRenderObject(child, slot);
element.removeChildRenderObject(child);

移行後のコード:

element.insertRenderObjectChild(child, slot);
element.moveRenderObjectChild(child, oldSlot, newSlot);
element.removeRenderObjectChild(child, slot);

参考文献

API ドキュメント:

  • RenderObjectElement

関連する問題:

  • 問題 63269

関連する PR:

  • で廃止されました#64254
  • に削除されました#98616

タイムライン

安定版リリース: 3.0.0